package ddta;

import java.util.ArrayList;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.3C419676-9165-C89A-3039-793773E1CD7A]
// </editor-fold> 
public class DDTA {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.32A2A405-FD69-FC17-0B54-50B5A46B1D20]
    // </editor-fold> 
    private CtlTuristas ctlTuristas;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.2E6EB16F-36F9-196B-BDA4-A3D73FDB4337]
    // </editor-fold> 
    private CtlTarifa ctlTarifas;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.0C7B46BC-A3D8-C25E-795E-0EECB5E89D6C]
    // </editor-fold> 
    private CtlPaquetes ctlPaquetes;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.48CDD853-B77A-4946-EB71-A2AB2822E63F]
    // </editor-fold> 
    private CtlLugaresTuristicos ctlLugaresTuristicos;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.32846CD3-A9B1-1AE6-2CBB-42C87789FE1D]
    // </editor-fold> 
    private CtlGuia ctlGuias;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.FBA452BB-F981-7D0B-EDA5-4189C4FAEE01]
    // </editor-fold> 
    private CtlTipoLugar ctlTipoLugar;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.077F3160-7284-D873-662C-290E3225D24D]
    // </editor-fold> 
    private CtlAgencias ctlAgencias;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.54CCEA53-729A-93E5-15F7-285C57064EBD]
    // </editor-fold> 
    private CtlVentasPaquetes ctlVentasPaquetes;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.210D3A0A-A5E6-4994-A7AE-A536B24C10E2]
    // </editor-fold> 
    private CtlClientes ctlClientes;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.659CA2AA-B93A-0166-7687-643E07514813]
    // </editor-fold> 
    public DDTA () {
        this.ctlGuias = new CtlGuia();
        this.ctlAgencias = new CtlAgencias();
        this.ctlClientes = new CtlClientes();
        this.ctlVentasPaquetes = new CtlVentasPaquetes();
        this.ctlTipoLugar = new CtlTipoLugar();
        this.ctlLugaresTuristicos = new CtlLugaresTuristicos();
        this.ctlPaquetes = new CtlPaquetes();
        this.ctlTarifas = new CtlTarifa();
        this.ctlTuristas = new CtlTuristas();
        initValues();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.1F6B9178-F39D-8AC1-07ED-1B7143503C24]
    // </editor-fold> 
    public CtlAgencias getCtlAgencias () {
        return ctlAgencias;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.CDEB81EE-35A1-676E-21FB-F778FEA13E55]
    // </editor-fold> 
    public void setCtlAgencias (CtlAgencias val) {
        this.ctlAgencias = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.22C20EEC-D0F4-EAED-DCA8-01EDECAED63A]
    // </editor-fold> 
    public CtlClientes getCtlClientes () {
        return ctlClientes;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.D7415B90-7190-2889-F396-D0DEEB033119]
    // </editor-fold> 
    public void setCtlClientes (CtlClientes val) {
        this.ctlClientes = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.B490AC57-CB1D-700A-EECD-221644CAAC43]
    // </editor-fold> 
    public CtlVentasPaquetes getCtlVentasPaquetes () {
        return ctlVentasPaquetes;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.7FA0DBA7-C445-30DD-CE00-10382F8F8BEA]
    // </editor-fold> 
    public void setCtlVentasPaquetes (CtlVentasPaquetes val) {
        this.ctlVentasPaquetes = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.68A96BF5-CA64-AFEA-8772-FC05BBF2E279]
    // </editor-fold> 
    public CtlPaquetes getCtlPaquetes () {
        return ctlPaquetes;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.7F8DEC49-1323-5D37-A8BA-A88378363877]
    // </editor-fold> 
    public CtlTipoLugar getCtlTipoLugar () {
        return ctlTipoLugar;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.EBAC0756-9CF1-55DB-5D5E-86E45721DA7B]
    // </editor-fold> 
    public void setCtlTipoLugar (CtlTipoLugar val) {
        this.ctlTipoLugar = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.87EF7D21-4E9F-A1DD-7DF0-809112FE5CA6]
    // </editor-fold> 
    public CtlGuia getCtlGuias () {
        return ctlGuias;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.9446302E-A7BB-A8CC-B30B-F0CBC5A29067]
    // </editor-fold> 
    public void setCtlGuias (CtlGuia val) {
        this.ctlGuias = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.D7059B58-B6FF-3A16-32B1-FDDE69B05B22]
    // </editor-fold> 
    public CtlLugaresTuristicos getCtlLugaresTuristicos () {
        return ctlLugaresTuristicos;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.37F1D0E5-D7A4-545B-8CE9-C1EBF43EA8EF]
    // </editor-fold> 
    public void setCtlLugaresTuristicos (CtlLugaresTuristicos val) {
        this.ctlLugaresTuristicos = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.977D5516-A93A-DFFB-0F65-724E5476A312]
    // </editor-fold> 
    public void setCtlPaquetes (CtlPaquetes val) {
        this.ctlPaquetes = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.78520209-355F-D0E4-88B9-13C869832BC6]
    // </editor-fold> 
    public CtlTarifa getCtlTarifas () {
        return ctlTarifas;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.65B7CA16-CA05-4574-CBFF-5E83A5823CD1]
    // </editor-fold> 
    public void setCtlTarifas (CtlTarifa val) {
        this.ctlTarifas = val;
    }
    private void initValues() {
        TipoLugar tipoLugar;
        //Cargar datos de Lugares
        tipoLugar = this.ctlTipoLugar.buscarTipoLugar("TL001");
        this.ctlLugaresTuristicos.registrarLugarTuristico("L001", "Las ruinas de Chopijirca", tipoLugar);
        tipoLugar = this.ctlTipoLugar.buscarTipoLugar("TL002");
        this.ctlLugaresTuristicos.registrarLugarTuristico("L002", "Llanganuco", tipoLugar);
        this.ctlLugaresTuristicos.registrarLugarTuristico("L003", "Querococha", tipoLugar);
        tipoLugar = this.ctlTipoLugar.buscarTipoLugar("TL003");
        this.ctlLugaresTuristicos.registrarLugarTuristico("L004", "Pastoruri", tipoLugar);
        this.ctlLugaresTuristicos.registrarLugarTuristico("L005", "Huascarán", tipoLugar);
        tipoLugar = this.ctlTipoLugar.buscarTipoLugar("TL004");
        this.ctlLugaresTuristicos.registrarLugarTuristico("L006", "Caraz", tipoLugar);
        this.ctlLugaresTuristicos.registrarLugarTuristico("L007", "Yungay", tipoLugar);
        //Iniciando valores de paquetes
        Tarifa tarifa = this.getCtlTarifas().buscarTarifa("T001");
        Agencia agencia = this.getCtlAgencias().buscarAgencia("A001");
        LugarTuristico lugar = this.getCtlLugaresTuristicos().buscarLugarTuristico("L005");
        ArrayList<LugarTuristico> rutaCaraz = new ArrayList<LugarTuristico>();
        rutaCaraz.add(lugar);
        this.ctlPaquetes.registrarPaqueteTour("P001", "CARAZ BASICO", agencia, rutaCaraz, tarifa);
        
        tarifa = this.getCtlTarifas().buscarTarifa("T002");
        agencia = this.getCtlAgencias().buscarAgencia("A002");
        lugar = this.getCtlLugaresTuristicos().buscarLugarTuristico("L004");
        ArrayList<LugarTuristico> rutaPastoruri = new ArrayList<LugarTuristico>();
        rutaPastoruri.add(lugar);
        this.ctlPaquetes.registrarPaqueteTour("P002", "PASTORURI PREMIUM", agencia, rutaPastoruri, tarifa);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.E3A4C9A7-37F9-FFD9-4A72-BD148726D634]
    // </editor-fold> 
    public CtlTuristas getCtlTuristas () {
        return ctlTuristas;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.9D61EF56-EBA2-FFBB-0AC3-45607AF48C53]
    // </editor-fold> 
    public void setCtlTuristas (CtlTuristas val) {
        this.ctlTuristas = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.72E8AA9E-A4E1-4EAA-85EB-9D6A7B094DBE]
    // </editor-fold> 
    public int obtenerNumVentasRealizadas (Agencia agencia) {
        int numVentas = 0;
        if (this.getCtlVentasPaquetes().getVentasPaquetes().size() >0) {
            for (BoletaVenta ventas : this.getCtlVentasPaquetes().getVentasPaquetes()) {
                if (ventas.getPaqueteTour().getAgencia().equals(agencia)) {
                    numVentas++;
                }
            }
        }
        return numVentas;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.10242CBD-0FBA-4283-4F37-05751A6C7778]
    // </editor-fold> 
    public int obtenerNumPaquetesVendxTour (PaqueteTour paquete) {
        int numVentas = 0;
        if (this.getCtlVentasPaquetes().getVentasPaquetes().size() >0) {
            for (BoletaVenta ventas : this.getCtlVentasPaquetes().getVentasPaquetes()) {
                if (ventas.getPaqueteTour().equals(paquete)) {
                    numVentas++;
                }
            }
        }
        return numVentas;
    }
}

